#pragma once

#include <iostream>
#include <chrono>
#include <ctime>
#include <cmath>
#include <string>
using namespace std;

typedef std::chrono::time_point<std::chrono::system_clock> TimeType;

class Timer{
public:
    Timer();
    Timer(string name);
    
    void start();
    void pause();
    void reset();
    double elapsedMilliseconds();
    double elaspsedSeconds();
    string output();
public:
    string m_name;
    bool m_started;
    size_t n;
    TimeType m_StartTime;
    double m_ellapsed_millisecs;
};